1. Technical Field
The present invention generally relates to provisioning computing environment resources based on social media analysis and in particular to techniques for provisioning cloud computing environment resources based on social media analysis.
2. Description of the Related Art
In general, cloud computing refers to Internet-based computing where shared resources, software, and information are provided to users of computer systems and other electronic devices (e.g., mobile phones) on demand, similar to the electricity grid. Adoption of cloud computing has been aided by the widespread adoption of virtualization, which is the creation of a virtual (rather than actual) version of something, e.g., an operating system, a server, a storage device, network resources, etc. A virtual machine (VM) is a software implementation of a physical machine (e.g., a computer system) that executes instructions like the physical machine. VMs are usually categorized as system VMs or process VMs. A system VM provides a complete system platform that supports the execution of a complete operating system (OS). In contrast, a process VM is usually designed to run a single program and support a single process. A characteristic of a VM is that application software running on the VM is limited to the resources and abstractions provided by the VM. System VMs (also referred to as hardware VMs) allow the sharing of the underlying physical machine resources between different VMs, each of which executes its own OS. The software that provides the virtualization and controls the VMs is typically referred to as a VM monitor (VMM) or hypervisor. A hypervisor may run on bare hardware (Type 1 or native VMM) or on top of an operating system (Type 2 or hosted VMM).
Cloud computing provides a consumption and delivery model for information technology (IT) services based on the Internet and involves over-the-Internet provisioning of dynamically scalable and usually virtualized resources. Cloud computing is facilitated by ease-of-access to remote computing websites (via the Internet) and frequently takes the form of web-based tools or applications that a cloud consumer can access and use through a web browser, as if the tools or applications were a local program installed on a computer system of the cloud consumer. Commercial cloud implementations are generally expected to meet quality of service (QoS) requirements of consumers and typically include service level agreements (SLAs). Cloud consumers avoid capital expenditures by renting usage from a cloud vendor (i.e., a third-party provider). In a typical cloud implementation, cloud consumers consume resources as a service and pay only for resources used.
A “flash crowd” is a term used for are very large group of individuals that access a particular website simultaneously in response to an event (e.g., an entry on a social news website such as Digg™ or Slashdot™). In an extreme case, a flash crowd may cause one or more web servers to go down (sometimes referred to as the Digg effect or Slashdot effect depending on the referring website) and may cause other negative effects to a network around the web servers. Conventionally, flash crowds have forced web content creators to either allocate bandwidth (e.g., in the form of additional web servers) that is not utilized the vast majority of the time, or accept that when a flash crowd accesses content on a website allocated web servers will not be able to handle the additional traffic caused by the flash crowd. In general, dynamic scalability and provisioning available with cloud computing helps address the issue of flash crowds (among others). Unfortunately, dynamic provisioning of additional instances in a conventional cloud computing environment is entirely reactive and takes a non-trivial amount of time.